package com.heima.demo;
 /*
 需求:某电影院正在上映大片，共有100张票，而它有3个窗口买票，请设计一个程序模拟该电影院卖票
 1,定义一个类MyTicket实现runnable接口，里面定义一个成员变量Pravite int ticketCount=100;
 在MyTicket类中重写run()方法实现卖票
 A判断票数小于0，就卖票，并告知是哪个窗口卖的
 B票数要减一
 C卖光后，线程停止
 2,创建测试类
 A创建MyTicket对象
 B创建3个Thread类的对象，把Ticket对象作为构造方法的参数，并给出对应的窗口名称
 C启动线程
  */
public class MyTicket implements  Runnable{
    private int ticketCount =100;

     @Override
     public void run() {
         while (true){
             //上锁，保证安全性
             synchronized (this){
                 if(ticketCount<=0){
                 break;

             }else {
                 try {
                     //让线程先睡1秒
                     //被同步代码块包裹起来的代码块，每次只允许一条线程进入同步中
                     //执行代码，而其他线程则在外面同步等待
                     Thread.sleep(50);
                 } catch (InterruptedException e) {
                     e.printStackTrace();
                 }
                 ticketCount--;
                 System.out.println(Thread.currentThread().getName()+"在卖票。还剩下"+ticketCount+"张");
             }

             }

         }
     }
 }
